package flappy.VatThe;

import com.badlogic.gdx.math.Circle;
import com.badlogic.gdx.math.Vector2;

import flappy.Game.TaiNguyen;

public class Chim {
	
	public Vector2 viTri;
	public float   vanToc;
	public float   giaToc;
	
	public float   gocXoay;
	public int     rong;
	public float   dai;
	
	public float   tungDoBatDau;
	public boolean ConSong;
	
	public Circle  bienVaCham;
	
	public Chim(float x, float y, int r, int d) {
		this.rong = r;
		this.dai = d;
		this.tungDoBatDau = y;
		viTri = new Vector2(x, y);
		vanToc = 0;
		giaToc = 500;
		bienVaCham = new Circle();
		ConSong = true;
	}
	
	public void update(float delta) {
		
		vanToc += giaToc * delta;
		// kiểm tra quá tốc độ quy định ^^
		if (vanToc > 200) vanToc = 200;
		
		// đụng mép trên màn hình
		if (viTri.y < 0) {
			viTri.y = 0;
			vanToc = 0;
		}
		
		viTri.y += vanToc * delta;
		
		// cập nhật lại vùng biên va chạm
		bienVaCham.set(viTri.x + 9, viTri.y + 6, 6);
		
		// quay đầu theo vận tốc
		if (vanToc < 0) {
			gocXoay -= 600 * delta;
			if (gocXoay < -20) {
				gocXoay = -20;
			}
		}
		else if (vanToc > 110 || !ConSong) {
			gocXoay += 480 * delta;
		}
		
		if (gocXoay > 90) gocXoay = 90;	// chim chết thì cho cắm đầu xuống đất luôn
		
		if (!ConSong)
		    gocXoay -= 3000 * delta;
	}
	
	public void nhapNho(float t) {
		viTri.y = 2 * (float) Math.sin(7 * t) + tungDoBatDau;
	}
	
	public boolean VoCanh() {
		return vanToc > 70 || !ConSong;
	}
	
	public void bayLen() {
		if (ConSong) {
			vanToc = -TaiNguyen.LucKichThich;
			TaiNguyen.amThanhVoCanh.play();
		}
	}
	
	public void Chet() {
		ConSong = false;
		vanToc = 0;
		giaToc = TaiNguyen.TrongLuc * 3;
	}
	
	public void DungLai() {
		giaToc = 0;
	}
	
	public void KhoiTao(int y) {
		gocXoay = 0;
		viTri.y = y;
		vanToc = 0;
		giaToc = TaiNguyen.TrongLuc;
		ConSong = true;
	}
	
	public float x() {
		return viTri.x;
	}
	
	public float y() {
		return viTri.y;
	}
	
}
